﻿using System;
using System.Collections.Generic;
using DemoCenter.Maui.Models;
using DemoCenter.Maui.Views;

namespace DemoCenter.Maui.Data {
    public class ChartsDataAdvanced : IDemoData {
        readonly List<DemoItem> demoItems;

        public ChartsDataAdvanced() {
            this.demoItems = new List<DemoItem>() {
                new DemoItem() {
                    Title = "Axis Label Options",
                    Description = "Shows how to specify axis labels' rotation angle and arrange them in staggered order.",
                    Module = typeof(AxisLabelOptions),
                    Icon = "labelmode"
                },
                new DemoItem() {
                    Title = "Series Template",
                    Description = "Shows how to create autogenerated series from datasourse based on series template.",
                    Module = typeof(SeriesTemplate),
                    Icon = "seriestemplateadapter"
                },
                new DemoItem() {
                    Title = "Custom Appearance",
                    Description = "Shows how to customize the appearance of series and other elements of the chart.",
                    Module = typeof(Colorizer),
                    Icon = "customappearance"
                },
                new DemoItem() {
                    Title = "Spectrum Analysis",
                    Description = "Shows multiple charts that allow real-time frequency spectrum analysis.",
                    Module = typeof(SpectrumAnalyzer),
                    Icon = "spectrumanalysis",
                },
                new DemoItem() {
                    Title = "Logarithmic Scale",
                    Description = "Demonstrates a chart axis that uses the logarithmic scale to display numeric values.",
                    Module = typeof(LogarithmicScale),
                    Icon = "logarithmicscale",
                },
                new DemoItem() {
                    Title = "Oscillator",
                    Description="Demonstrates how the chart performs full data updates in real time.",
                    Module = typeof(Oscillator),
                    Icon = "oscillator",
                },
                new DemoItem() {
                    Title = "Real-Time Data Updates",
                    Description="Displays an auto-refreshed Line Chart bound to a frequently updated dataset.",
                    Module = typeof(RealTimeData),
                    Icon = "realtimedatacharts"
                },
                new DemoItem() {
                    Title = "Selection",
                    Description="Demonstrates support for series and point selection within a chart.",
                    Module = typeof(Selection),
                    Icon = "selection"
                },
                new DemoItem() {
                    Title = "Multiple Axes",
                    Description="Demonstrates multiple axes within a single chart.",
                    Module = typeof(MultipleAxes),
                    Icon = "multipleaxes"
                },
                new DemoItem() {
                    Title = "Large Dataset",
                    ControlsPageTitle = "Blazing Fast Native Rendering",
                    Description="Demonstrates the speed with which DevExpress Charts can render a large number of points.",
                    Module = typeof(LargeDataset),
                    Icon = "largedataset"
                }
            };
        }
        public List<DemoItem> DemoItems => this.demoItems;
        public string Title { get { return "ChartView"; } }
    }
}

